package result

import (
	"github.com/gin-gonic/gin"
	"net/http"
)

// Result 通用响应结构体
// @Description 通用响应格式，包含状态码、消息和数据
type Result struct {
	// 状态码
	// @example 200
	Code int `json:"code"`

	// 返回消息
	// @example "操作成功"
	Message string `json:"message"`

	// 数据部分
	// @example {"data"}
	Data interface{} `json:"data"`
}

func Ok(c *gin.Context, data interface{}) {
	result := Result{
		Code:    http.StatusOK,
		Message: "SUCCESS",
		Data:    data,
	}
	c.JSON(http.StatusOK, result)
}

func Fail(c *gin.Context, code int, message string) {
	result := Result{
		Code:    code,
		Message: message,
		Data:    nil,
	}
	c.JSON(code, result)
}
